package com.xunk.equipment.service.mandun.vo;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.springframework.util.ObjectUtils;

import java.math.BigDecimal;

/**
 * @ProjectName: xunk
 * @Package: com.xunk.equipment.service.ruying.mandun.vo
 * @ClassName: MandunBoxesHourStatsVO
 * @Author: luanzhiwei
 * @Description: 曼顿设备小时区间统计信息实体类
 * @Date: 2021/3/28 22:13
 * @Version: 1.0
 */
@Data
@NoArgsConstructor
@ToString
@EqualsAndHashCode
@Measurement(name = "mandun_interval_electricity_consumption", database = "paramter_db", retentionPolicy = "default")
public class MandunIntervalElectricityConsumption {

    /**
     * 查询类型month，day，hour
     */
    @Column(name = "type", tag = true)
    private String type;
    /**
     * 年，该字段为入参字段，落库需要
     */
    @Column(name = "year", tag = true)
    private String year;
    /**
     * 月，该字段为入参字段，落库需要
     */
    @Column(name = "month")
    private String month;
    /**
     * 日，该字段为入参字段，落库需要
     */
    @Column(name = "day")
    private String day;
    /**
     * 小时，该字段为入参字段，落库需要
     */
    @Column(name = "hour")
    private String hour;
    /**
     * 电箱编号，也就是设备编号
     */
    @Column(name = "deviceSn", tag = true)
    @JSONField(name = "mac")
    private String deviceSn;
    /**
     * 线路地址
     */
    @Column(name = "addr", tag = true)
    private String addr;
    /**
     * 区间的用电量（单位：kWh）
     */
    @Column(name = "electricity")
    private BigDecimal electricity;
    /**
     * 刻度电量（当时的总电量,单位：kWh）
     */
    @Column(name = "total_electricity")
    private String totalElectricity;
    /**
     * 小时区间的平均电流（单位：A）
     */
    @Column(name = "current_value")
    private String currentValue;
    /**
     * 小时区间的平均电压（单位是：V）
     */
    @Column(name = "voltage")
    private String voltage;
    /**
     * 小时区间的A相温度的峰值（单位是：℃）
     */
    @Column(name = "temp_a")
    private String tempA;
    /**
     * 小时区间的B相温度的峰值（单位是：℃）
     */
    @Column(name = "temp_b")
    private String tempB;
    /**
     * 小时区间的C相温度的峰值（单位是：℃）
     */
    @Column(name = "temp_c")
    private String tempC;
    /**
     * 小时区间的综合温度的峰值（单位是：℃）
     */
    @Column(name = "temp_n")
    private String tempN;
    /**
     * 小时区间的漏电流总值（单位是：mA）
     */
    @Column(name = "leakage_value")
    private String leakageValue;
    /**
     * -1为进线直连，非-1表示电量目标节点号
     */
    @Column(name = "gather_addr")
    private String gatherAddr;

    /**
     * 如果为空，返回0 方便计算
     *
     * @return
     */
    public BigDecimal getElectricity() {
        return ObjectUtils.isEmpty(electricity) ? new BigDecimal(0) : electricity;
    }
}
